﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CSharpExt.Threading
{

    // ======================================================================
    // Thread
    // ======================================================================

    public class DuplicateThreadException : ArgumentException
    {
        #region Constructor

        public DuplicateThreadException(String tgpath, String tname)
            : base(String.Format("Thread {1} already present in ThreadGroup {0}", tname, tgpath))
        {

        }

        #endregion
    }


    // ======================================================================
    // ThreadGroup
    // ======================================================================

    public class DuplicateThreadGroupException : ArgumentException
    {
        #region Constructor

        public DuplicateThreadGroupException(String tgpath, String tgname)
            : base(String.Format("{1}.{0}", tgname, tgpath))
        {

        }

        #endregion
    }

    public class ThreadGroupNotEmptyException : SystemException
    {
        #region Constructor

        public ThreadGroupNotEmptyException(String tgpath)
            : base(tgpath)
        {

        }

        #endregion
    }


    // ======================================================================
    // ThreadPool
    // ======================================================================

    public class ThreadPoolNotFoundException : Exception
    {
        public ThreadPoolNotFoundException(String name)
            : base(name)
        {

        }
    }

    public class DuplicateThreadPoolException : Exception
    {
        public DuplicateThreadPoolException(String name)
            : base(name)
        {

        }
    }
}
